home *** CD-ROM | disk | FTP | other *** search
/ Personal Computer World 2005 October / PCWOCT05.iso / Software / FromTheMag / XAMPP 1.4.14 / xampp-win32-1.4.14-installer.exe / xampp / phpMyAdmin / libraries / engines / innodb.lib.php < prev    next >
PHP Script  |  2005-03-26  |  12KB  |  194 lines

  1. <?php
  2. /* $Id: innodb.lib.php,v 2.5 2005/03/26 23:34:26 rabus Exp $ */
  3. // vim: expandtab sw=4 ts=4 sts=4:
  4.  
  5. class PMA_StorageEngine_innodb extends PMA_StorageEngine {
  6.     function getVariables() {
  7.         return array(
  8.             'innodb_data_home_dir' => array(
  9.                 'title' => $GLOBALS['strInnoDBDataHomeDir'],
  10.                 'desc'  => $GLOBALS['strInnoDBDataHomeDirDesc']
  11.             ),
  12.             'innodb_data_file_path' => array(
  13.                 'title' => $GLOBALS['strInnoDBDataFilePath']
  14.             ),
  15.             'innodb_autoextend_increment' => array(
  16.                 'title' => $GLOBALS['strInnoDBAutoextendIncrement'],
  17.                 'desc'  => $GLOBALS['strInnoDBAutoextendIncrementDesc'],
  18.                 'type'  => PMA_ENGINE_DETAILS_TYPE_NUMERIC
  19.             ),
  20.             'innodb_buffer_pool_size' => array(
  21.                 'title' => $GLOBALS['strInnoDBBufferPoolSize'],
  22.                 'desc'  => $GLOBALS['strInnoDBBufferPoolSizeDesc'],
  23.                 'type'  => PMA_ENGINE_DETAILS_TYPE_SIZE
  24.             )
  25.         );
  26.     }
  27.  
  28.     function getVariablesLikePattern () {
  29.         return 'innodb\\_%';
  30.     }
  31.  
  32.     function getInfoPages () {
  33.         if ($this->support < PMA_ENGINE_SUPPORT_YES) {
  34.             return array();
  35.         }
  36.         $pages = array();
  37.         if (PMA_MYSQL_INT_VERSION >= 50002) {
  38.             $pages['bufferpool'] = $GLOBALS['strBufferPool'];
  39.         }
  40.         $pages['status'] = $GLOBALS['strInnodbStat'];
  41.         return $pages;
  42.     }
  43.  
  44.     function getPage($id) {
  45.         global $cfg;
  46.  
  47.         switch ($id) {
  48.             case 'bufferpool':
  49.                 if (PMA_MYSQL_INT_VERSION < 50002) {
  50.                     return FALSE;
  51.                 }
  52.                 // rabus: The following query is only possible because we know
  53.                 // that we are on MySQL 5 here (checked above)!
  54.                 // side note: I love MySQL 5 for this. :-)
  55.                 $res = PMA_DBI_query('SHOW STATUS WHERE Variable_name LIKE \'Innodb\\_buffer\\_pool\\_%\' OR Variable_name = \'Innodb_page_size\';');
  56.                 $status = array();
  57.                 while ($row = PMA_DBI_fetch_row($res)) {
  58.                     $status[$row[0]] = $row[1];
  59.                 }
  60.                 PMA_DBI_free_result($res);
  61.                 unset($res, $row);
  62.                 $output = '<table>' . "\n"
  63.                         . '    <thead>' . "\n"
  64.                         . '        <tr>' . "\n"
  65.                         . '            <th colspan="4">' . "\n"
  66.                         . '                ' . $GLOBALS['strBufferPoolUsage'] . "\n"
  67.                         . '            </th>' . "\n"
  68.                         . '        </tr>' . "\n"
  69.                         . '    </thead>' . "\n"
  70.                         . '    <tfoot>' . "\n"
  71.                         . '        <tr>' . "\n"
  72.                         . '            <th>' . "\n"
  73.                         . '                ' . $GLOBALS['strTotalUC'] . "\n"
  74.                         . '            </th>' . "\n"
  75.                         . '            <th colspan="3">' . "\n"
  76.                         . '                ' . htmlspecialchars($status['Innodb_buffer_pool_pages_total']) . ' ' . $GLOBALS['strInnoDBPages'] . ' / ' . join(' ', PMA_formatByteDown($status['Innodb_buffer_pool_pages_total'] * $status['Innodb_page_size'])) . "\n"
  77.                         . '            </th>' . "\n"
  78.                         . '        </tr>' . "\n"
  79.                         . '    </tfoot>' . "\n"
  80.                         . '    <tbody>' . "\n"
  81.                         . '        <tr>' . "\n"
  82.                         . '            <td bgcolor="' . $cfg['BgcolorTwo'] . '">' . "\n"
  83.                         . '                 ' . $GLOBALS['strFreePages'] . ' ' . "\n"
  84.                         . '            </td>' . "\n"
  85.                         . '            <td align="right" bgcolor="' . $cfg['BgcolorTwo'] . '">' . "\n"
  86.                         . '                ' . htmlspecialchars($status['Innodb_buffer_pool_pages_free']) . "\n"
  87.                         . '            </td>' . "\n"
  88.                         . '            <td bgcolor="' . $cfg['BgcolorOne'] . '">' . "\n"
  89.                         . '                 ' . $GLOBALS['strDirtyPages'] . ' ' . "\n"
  90.                         . '            </td>' . "\n"
  91.                         . '            <td align="right" bgcolor="' . $cfg['BgcolorOne'] . '">' . "\n"
  92.                         . '                ' . htmlspecialchars($status['Innodb_buffer_pool_pages_dirty']) . "\n"
  93.                         . '            </td>' . "\n"
  94.                         . '        </tr>' . "\n"
  95.                         . '        <tr>' . "\n"
  96.                         . '            <td bgcolor="' . $cfg['BgcolorOne'] . '">' . "\n"
  97.                         . '                 ' . $GLOBALS['strDataPages'] . ' ' . "\n"
  98.                         . '            </td>' . "\n"
  99.                         . '            <td align="right" bgcolor="' . $cfg['BgcolorOne'] . '">' . "\n"
  100.                         . '                ' . htmlspecialchars($status['Innodb_buffer_pool_pages_data']) . "\n"
  101.                         . '            </td>' . "\n"
  102.                         . '            <td bgcolor="' . $cfg['BgcolorOne'] . '">' . "\n"
  103.                         . '                 ' . $GLOBALS['strPagesToBeFlushed'] . ' ' . "\n"
  104.                         . '            </td>' . "\n"
  105.                         . '            <td align="right" bgcolor="' . $cfg['BgcolorOne'] . '">' . "\n"
  106.                         . '                ' . htmlspecialchars($status['Innodb_buffer_pool_pages_flushed']) . "\n"
  107.                         . '            </td>' . "\n"
  108.                         . '        </tr>' . "\n"
  109.                         . '        <tr>' . "\n"
  110.                         . '            <td bgcolor="' . $cfg['BgcolorTwo'] . '">' . "\n"
  111.                         . '                 ' . $GLOBALS['strBusyPages'] . ' ' . "\n"
  112.                         . '            </td>' . "\n"
  113.                         . '            <td align="right" bgcolor="' . $cfg['BgcolorTwo'] . '">' . "\n"
  114.                         . '                ' . htmlspecialchars($status['Innodb_buffer_pool_pages_misc']) . "\n"
  115.                         . '            </td>' . "\n"
  116.                         . '            <td bgcolor="' . $cfg['BgcolorOne'] . '">' . "\n"
  117.                         . '                 ' . $GLOBALS['strLatchedPages'] . ' ' . "\n"
  118.                         . '            </td>' . "\n"
  119.                         . '            <td align="right" bgcolor="' . $cfg['BgcolorOne'] . '">' . "\n"
  120.                         . '                ' . htmlspecialchars($status['Innodb_buffer_pool_pages_latched']) . "\n"
  121.                         . '            </td>' . "\n"
  122.                         . '        </tr>' . "\n"
  123.                         . '    </tbody>' . "\n"
  124.                         . '</table>' . "\n\n"
  125.                         . '<br />' . "\n\n"
  126.                         . '<table>' . "\n"
  127.                         . '    <thead>' . "\n"
  128.                         . '        <tr>' . "\n"
  129.                         . '            <th colspan="4">' . "\n"
  130.                         . '                ' . $GLOBALS['strBufferPoolActivity'] . "\n"
  131.                         . '            </th>' . "\n"
  132.                         . '        </tr>' . "\n"
  133.                         . '    </thead>' . "\n"
  134.                         . '    <tbody>' . "\n"
  135.                         . '        <tr>' . "\n"
  136.                         . '            <td bgcolor="' . $cfg['BgcolorOne'] . '">' . "\n"
  137.                         . '                 ' . $GLOBALS['strReadRequests'] . ' ' . "\n"
  138.                         . '            </td>' . "\n"
  139.                         . '            <td align="right" bgcolor="' . $cfg['BgcolorOne'] . '">' . "\n"
  140.                         . '                ' . htmlspecialchars($status['Innodb_buffer_pool_read_requests']) . "\n"
  141.                         . '            </td>' . "\n"
  142.                         . '            <td bgcolor="' . $cfg['BgcolorOne'] . '">' . "\n"
  143.                         . '                 ' . $GLOBALS['strWriteRequests'] . ' ' . "\n"
  144.                         . '            </td>' . "\n"
  145.                         . '            <td align="right" bgcolor="' . $cfg['BgcolorOne'] . '">' . "\n"
  146.                         . '                ' . htmlspecialchars($status['Innodb_buffer_pool_write_requests']) . "\n"
  147.                         . '            </td>' . "\n"
  148.                         . '        </tr>' . "\n"
  149.                         . '        <tr>' . "\n"
  150.                         . '            <td bgcolor="' . $cfg['BgcolorTwo'] . '">' . "\n"
  151.                         . '                 ' . $GLOBALS['strBufferReadMisses'] . ' ' . "\n"
  152.                         . '            </td>' . "\n"
  153.                         . '            <td align="right" bgcolor="' . $cfg['BgcolorTwo'] . '">' . "\n"
  154.                         . '                ' . htmlspecialchars($status['Innodb_buffer_pool_reads']) . "\n"
  155.                         . '            </td>' . "\n"
  156.                         . '            <td bgcolor="' . $cfg['BgcolorTwo'] . '">' . "\n"
  157.                         . '                 ' . $GLOBALS['strBufferWriteWaits'] . ' ' . "\n"
  158.                         . '            </td>' . "\n"
  159.                         . '            <td align="right" bgcolor="' . $cfg['BgcolorTwo'] . '">' . "\n"
  160.                         . '                ' . htmlspecialchars($status['Innodb_buffer_pool_wait_free']) . "\n"
  161.                         . '            </td>' . "\n"
  162.                         . '        </tr>' . "\n"
  163.                         . '        <tr>' . "\n"
  164.                         . '            <td bgcolor="' . $cfg['BgcolorOne'] . '">' . "\n"
  165.                         . '                 ' . $GLOBALS['strBufferReadMissesInPercent'] . ' ' . "\n"
  166.                         . '            </td>' . "\n"
  167.                         . '            <td align="right" bgcolor="' . $cfg['BgcolorTwo'] . '">' . "\n"
  168.                         . '                ' . ($status['Innodb_buffer_pool_read_requests'] == 0 ? '---' : htmlspecialchars(number_format($status['Innodb_buffer_pool_reads'] * 100 / $status['Innodb_buffer_pool_read_requests'], 2, $GLOBALS['number_decimal_separator'], $GLOBALS['number_thousands_separator'])) . ' %') . "\n"
  169.                         . '            </td>' . "\n"
  170.                         . '            <td bgcolor="' . $cfg['BgcolorOne'] . '">' . "\n"
  171.                         . '                 ' . $GLOBALS['strBufferWriteWaitsInPercent'] . ' ' . "\n"
  172.                         . '            </td>' . "\n"
  173.                         . '            <td align="right" bgcolor="' . $cfg['BgcolorTwo'] . '">' . "\n"
  174.                         . '                ' . ($status['Innodb_buffer_pool_write_requests'] == 0 ? '---' : htmlspecialchars(number_format($status['Innodb_buffer_pool_wait_free'] * 100 / $status['Innodb_buffer_pool_write_requests'], 2, $GLOBALS['number_decimal_separator'], $GLOBALS['number_thousands_separator'])) . ' %') . "\n"
  175.                         . '            </td>' . "\n"
  176.                         . '        </tr>' . "\n"
  177.                         . '    </tbody>' . "\n"
  178.                         . '</table>' . "\n";
  179.                 return $output;
  180.             case 'status':
  181.                 $res = PMA_DBI_query('SHOW INNODB STATUS;');
  182.                 $row = PMA_DBI_fetch_row($res);
  183.                 PMA_DBI_free_result($res);
  184.                 return '<pre>' . "\n"
  185.                       . htmlspecialchars($row[0]) . "\n"
  186.                       . '</pre>' . "\n";
  187.             default:
  188.                 return FALSE;
  189.         }
  190.     }
  191. }
  192.  
  193. ?>
  194.